package com.alex.statistics.method.timeSeriesAnalysis;


import org.springframework.stereotype.Service;

@Service
public class ExponentialSmoothingService {

    /**
     * 使用指数平滑对数据进行预测
     *
     * @param data 输入数据
     * @param alpha 平滑系数 (0 < alpha < 1)
     * @return 预测结果
     */
    public double predict(double[] data, double alpha) {
        if (data.length == 0) {
            throw new IllegalArgumentException("数据为空");
        }

        double smoothedValue = data[0];  // 初始值为数据的第一个元素
        for (int i = 1; i < data.length; i++) {
            smoothedValue = alpha * data[i] + (1 - alpha) * smoothedValue;
        }

        return smoothedValue;
    }
}
